/*
 * MemCompSala.cpp
 *
 *  Created on: 28/07/2014
 *      Author: migue
 */

#include "MemCompSala.h"
#include <syslog.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

#include <sys/types.h>
#include <sys/wait.h>

MemCompSala::MemCompSala(int idCliente, int idBroker, int idShm) :
	IpcRemoto(idCliente, idShm)
{

}

MemCompSala::~MemCompSala() {

}

void MemCompSala::leerPersona(int pos, int& idPersona) {
	_msj._ipc.op_ipc = TIPO_SALA_LEER_PERSONAS;
	_msj._ipc.posicion_valor = pos;
	enviarPedido();

	idPersona = _msj._ipc.resp;
}

void MemCompSala::escribirPersona(int pos, int idPersona) {
	_msj._ipc.op_ipc = TIPO_SALA_ESCRIBIR_PERSONAS;
	_msj._ipc.posicion_valor = pos;
	_msj._ipc.valor = idPersona;

	enviarPedido();
}

void MemCompSala::escribirEstadoBus(Tipos::EstadoBUS estado) {
	_msj._ipc.op_ipc =	TIPO_SALA_ESCRIBIR_ESTADOBUS;
	_msj._ipc.valor = (int) estado;
	enviarPedido();
}

void MemCompSala::leerEstadoBUS(Tipos::EstadoBUS& estado) {
	_msj._ipc.op_ipc =	TIPO_SALA_LEER_ESTADOBUS;
	enviarPedido();

	estado = (Tipos::EstadoBUS) _msj._ipc.resp;
}

int MemCompSala::leerCantPersonas() {
	_msj._ipc.op_ipc = TIPO_SALA_LEER_CANTPERSONAS;
	enviarPedido();
	return _msj._ipc.resp;
}

void MemCompSala::escribirCantPersonas(int cant) {
	_msj._ipc.op_ipc = TIPO_SALA_ESCRIBIR_CANTPERSONAS;
	_msj._ipc.valor = cant;

	enviarPedido();
}

int MemCompSala::leerCantReservas() {
	_msj._ipc.op_ipc = TIPO_SALA_LEER_RESERVAS;
	enviarPedido();
	return _msj._ipc.resp;
}

void MemCompSala::escribirCantReservas(int cant) {
	_msj._ipc.op_ipc = TIPO_SALA_ESCRIBIR_RESERVAS;
	_msj._ipc.valor = cant;

	enviarPedido();
}
